AdminViewport = Ext.extend(Ext.Viewport, {
	id : "AdminViewport",
	layout : 'border',
	changeSkin : function(v) {
		Ext.util.CSS.swapStyleSheet('window', '../ext-2.0/resources/css/' + v + '.css');
	},
	changePassword : function(v) {
		this.pwWin = new PasswordWin();
		this.pwWin.show();
	},
	constructor : function(config) {
		Ext.QuickTips.init();
		Ext.form.Field.prototype.msgTarget = 'qtip';
		Ext.namespace("Rocky");
		Rocky.loginuser = {
			upload_url : "../admin/uploadImage.action",
			flash_url : "../swfupload/swfupload.swf"
		};
		Ext.apply(this, config);
		this.init();
	},
	onItemClick : function(action, event) {
		var module = action.initialConfig.module;
		// Ext.Msg.alert('Click', 'You did something.');
		if (!!module) {
			var panel = Ext.getCmp(module);
			if (!panel) {
				panel = eval("new " + module + "({id:'" + module + "'})");
			}
			this.main.openTab(panel);
		}
	},
	init : function() {
		this.headerTbr = new Ext.Toolbar({
			border : false,
			plain : false,
			frame : false,
			height : 30,
			listeners : {
				'click' : this.onItemClick,
				scope : this
			}
		});
		this.header = new Ext.Panel({
			region : 'north',
			split : true,
			border : false,
			plain : false,
			frame : false,
			collapsible : true,
			collapseMode : "mini",
			height : 30,
			minSize : 30,
			maxSize : 30,
			items : this.headerTbr
		});
		/*
		 * this.header = new Ext.Panel({ region : 'north', split : true, border : false, collapsible : true, collapseMode : "mini", height : 20, tbar : [{ text : '地区信息管理', module : 'AreaCurd', iconCls : 'blist', scope : this, handler : this.onItemClick }, { text : '系统资源管理', module : 'ResourceCurd', iconCls : 'blist', scope : this, handler : this.onItemClick }, { text : '系统角色管理', module : 'RoleCurd', iconCls : 'blist', scope : this, handler : this.onItemClick }, { text : '系统用户管理', module : 'AdminUserCurd', iconCls : 'blist', scope : this, handler : this.onItemClick }, { text : '归档时间设置', iconCls : 'blist', module : 'ArchivingConfigCurd', scope : this, handler : this.onItemClick }, { text : '土地档案归档', iconCls : 'blist', module : 'ArchivingPanel', scope : this, handler : this.onItemClick }, { text : '户口信息管理', module : 'PersonCurd', iconCls : 'blist', scope : this, handler : this.onItemClick }, { text : '家庭信息管理', iconCls : 'blist', module : 'FamilyCurd', scope : this, handler : this.onItemClick }, { text : '土地档案管理', iconCls : 'blist', module : 'ArchiveCurd', scope : this, handler : this.onItemClick }, { text : '历史档案查询', iconCls : 'blist', module : 'ArchiveoldGrid', scope : this, handler : this.onItemClick }, { text : '退出系统', iconCls : 'blist', module : '', scope : this, handler : function() { window.location = "../j_spring_security_logout" } }] });
		 */
		this.main = new MainPanel({
			border : false,
			plain : false,
			frame : false
		});
		Ext.apply(this, {
			items : [this.header, this.main]
		});
		var loginwin = new LoginWindow({
			listeners : {
				'login' : function(cmp, form, action) {
					Rocky.loginuser.id = action.result.id;
					Rocky.loginuser.username = action.result.username;
					if(Rocky.loginuser.username=='admin'){
						this.headerTbr.add([{
							text : '地区信息管理',
							module : 'AreaCurd',
							iconCls : 'blist',
							scope : this,
							handler : this.onItemClick
//						}, {
//							text : '系统资源管理',
//							module : 'ResourceCurd',
//							iconCls : 'blist',
//							scope : this,
//							handler : this.onItemClick
//						}, {
//							text : '系统角色管理',
//							module : 'RoleCurd',
//							iconCls : 'blist',
//							scope : this,
//							handler : this.onItemClick
//						}, {
//							text : '系统用户管理',
//							module : 'AdminUserCurd',
//							iconCls : 'blist',
//							scope : this,
//							handler : this.onItemClick
						}, {
							text : '归档时间设置',
							iconCls : 'blist',
							module : 'ArchivingConfigCurd',
							scope : this,
							handler : this.onItemClick
						}, {
							text : '土地档案归档',
							iconCls : 'blist',
							module : 'ArchivingPanel',
							scope : this,
							handler : this.onItemClick
						}, {
							text : '户口信息管理',
							module : 'PersonCurd',
							iconCls : 'blist',
							scope : this,
							handler : this.onItemClick
						}, {
							text : '家庭信息管理',
							iconCls : 'blist',
							module : 'FamilyCurd',
							scope : this,
							handler : this.onItemClick
						}, {
							text : '土地档案管理',
							iconCls : 'blist',
							module : 'ArchiveCurd',
							scope : this,
							handler : this.onItemClick
						}, {
							text : '历史档案查询',
							iconCls : 'blist',
							module : 'ArchiveoldGrid',
							scope : this,
							handler : this.onItemClick
						}, {
							text : '退出系统',
							iconCls : 'blist',
							module : '',
							scope : this,
							handler : function() {
								window.location = "../j_spring_security_logout"
							}
						}]);
					}else{
						var menu = Ext.decode(action.result.menu);
						this.headerTbr.add(menu.data);
						this.headerTbr.add({
							text : '退出系统',
							iconCls : 'blist',
							module : '',
							scope : this,
							handler : function() {
								window.location = "../j_spring_security_logout"
							}
						});
						// this.headerTbr.on('click',this.onItemClick,this);
						this.headerTbr.items.each(function(item, index, length) {
							item.on('click', this.onItemClick, this);
						}, this)
					}
					// alert(Rocky.loginuser.username);
				},
				scope : this
			}
		});
		AdminViewport.superclass.constructor.call(this);
		loginwin.isLogin();
	},
	onMenuclick : function(node, event) {
		var module = node.attributes.module;
		if (!!module) {
			var panel = Ext.getCmp(module);
			if (!panel) {
				panel = eval("new " + module + "()");
			}
			this.main.openTab(panel);
		}
		return false;
	}
});
MainPanel = Ext.extend(Ext.TabPanel, {
	id : 'main',
	border : false,
	region : 'center',
	margins : '0 5 5 0',
	resizeTabs : true,
	minTabWidth : 135,
	tabWidth : 135,
	enableTabScroll : true,
	activeTab : 0,
	plugins : new Ext.ux.TabCloseMenu(),
	constructor : function(config) {
		Ext.apply(this, {
			items : {
				id : 'homePage',
				title : '欢迎页',
				border : false,
				plain : true,
				autoLoad : {
					url : 'welcome.html',
					callback : function() {
					}
				},
				iconCls : 'icon-docs',
				autoScroll : true
			}
		});
		Ext.apply(this, config);
		MainPanel.superclass.constructor.call(this);
	},
	openTab : function(panel, id) {
		var o = (typeof panel == "string" ? panel : id || panel.id);
		var tab = this.getComponent(o);
		if (tab) {
			this.setActiveTab(tab);
		} else if (typeof panel != "string") {
			panel.id = o;
			var p = this.add(panel);
			this.setActiveTab(p);
		}
	},
	closeTab : function(panel, id) {
		var o = (typeof panel == "string" ? panel : id || panel.id);
		var tab = this.getComponent(o);
		if (tab) {
			this.remove(tab);
		}
	}
});
LoginWindow = Ext.extend(Ext.Window, {
	loginuser : null,
	title : '登陆系统',
	maskDisabled : false,
	modal : true,
	width : 265,
	height : 140,
	collapsible : true,
	defaults : {
		border : false
	},
	buttonAlign : 'center',
	initComponent : function() {
		this.addEvents('beforelogin', 'login');
		LoginWindow.superclass.initComponent.call(this);
		this.fp = this.createFormPanel();
		this.add(this.fp);
		this.addButton('登陆', this.login, this);
		this.addButton('重置', function() {
			this.fp.form.reset();
		}, this);
	},
	createFormPanel : function() {
		return new Ext.form.FormPanel({
			bodyStyle : 'padding-top:6px',
			defaultType : 'textfield',
			labelAlign : 'right',
			labelWidth : 55,
			labelPad : 0,
			frame : true,
			defaults : {
				allowBlank : false,
				width : 158
			},
			items : [{
				cls : 'user',
				name : 'username',
				value : 'admin',
				fieldLabel : '帐号',
				blankText : '帐号不能为空'
			}, {
				cls : 'key',
				name : 'password',
				value : 'admin',
				fieldLabel : '密码',
				blankText : '密码不能为空',
				inputType : 'password'
			}]
		});
	},
	login : function() {
		var json = this.fp.form.getValues();
		var jsondata = Ext.util.JSON.encode(json);
		if (!this.fp.form.isValid()) {
			return false;
		}
		if (this.fireEvent("beforelogin", this) !== false) {
			this.fp.form.submit({
				waitTitle : 'loading......',
				waitMsg : '正在登录......',
				params : {
					fromFile : '/js/resourcemenu_admin.js',
					j_username : json.username,
					j_password : json.password
				},
				url : '../j_spring_security_check',
				success : function(form, action) {
					if (action.success == 'false') {
						alert(action.success);
					} else {
						this.hide();
						this.loginuser = {
							username : action.result.username,
							id : action.result.id + ""
						};
						this.fireEvent('login', this, form, action);
					}
					// window.location.href = 'default.html';
				},
				failure : function(form, action) {
					Ext.MessageBox.alert('提示', action.result.errors);
				},
				scope : this
			});
		}
	},
	isLogin : function() {
		if (this.loginuser == null) {
			this.show();
		}
	}
});
Ext.onReady(function() {
	var viewport = new AdminViewport();
})